package com.buli.blmall.generator.config;

/**
 * @author xiang.gao
 * @date 2024/12/10 10:53
 */
public class GeneratorConfig {

    /**
     * 作者
     */
    private String author;

    /**
     * 要生成的表名
     */
    private String tableName;

    /**
     * 生成项目的模块名
     */
    private String taggetProject;

    /**
     * 模块名称
     */
    private String moudleName;

    /**
     * 基础包名
     */
    private String basePackage;

    /**
     * 输出路径
     */
    private String outputDir;

    /**
     * 业务
     */
    private String business;

    /**
     * 注释日期
     */
    private String commentDate;

    /**
     * 开启swagger
     */
    private boolean swagger;

    /**
     * 数据源配置
     */
    private DataSourceConfig dataSourceConfig;

    public GeneratorConfig business(String business) {
        this.business = business;
        return this;
    }

    public static GeneratorConfig create() {
        return new GeneratorConfig();
    }

    public GeneratorConfig dataSourceConfig(DataSourceConfig dataSourceConfig) {
        this.dataSourceConfig = dataSourceConfig;
        return this;
    }

    public GeneratorConfig author(String author) {
        this.author = author;
        return this;
    }

    public GeneratorConfig tableName(String tableName) {
        this.tableName = tableName;
        return this;
    }

    public GeneratorConfig taggetProject(String taggetProject) {
        this.taggetProject = taggetProject;
        return this;
    }

    public GeneratorConfig basePackage(String basePackage) {
        this.basePackage = basePackage;
        return this;
    }

    public GeneratorConfig moudleName(String moudleName) {
        this.moudleName = moudleName;
        return this;
    }

    public GeneratorConfig outputDir(String outputDir) {
        this.outputDir = outputDir;
        return this;
    }

    public GeneratorConfig commentDate(String commentDate) {
        this.commentDate = commentDate;
        return this;
    }

    public GeneratorConfig swagger(boolean swagger) {
        this.swagger = swagger;
        return this;
    }

    public String getAuthor() {
        return author;
    }

    public String getTableName() {
        return tableName;
    }

    public String getTaggetProject() {
        return taggetProject;
    }

    public String getOutputDir() {
        return outputDir;
    }

    public DataSourceConfig getDataSourceConfig() {
        return dataSourceConfig;
    }

    public String getCommentDate() {
        return commentDate;
    }

    public String getBusiness() {
        return business;
    }

    public String getBasePackage() {
		return basePackage;
	}

    public String getMoudleName() {
		return moudleName;
	}

    public boolean isSwagger() {
		return swagger;
	}
}
